//
// Copyright (c) 2011 Alex Nesterenko
//

#include "nane/RenderSystem/ogl/OGLAndroidWindowContext.h"
#include "nane/RenderSystem/ogl/OGLAPI.h"
#include "nane/core/log.h"

namespace nane
{
    ////////////////////////////////////////////////////////////////////////////////////////////////
    template<>
    void createSubSystem<OGLWindowContext>( OGLWindowContext** _system )
    {
        *_system = new OGLAndroidWindowContext();
    }
    ////////////////////////////////////////////////////////////////////////////////////////////////
    template<>
    void releaseSubSystem<OGLWindowContext>( OGLWindowContext* _system )
    {
        delete static_cast<OGLAndroidWindowContext*>(_system);
    }
    ////////////////////////////////////////////////////////////////////////////////////////////////
    OGLAndroidWindowContext::OGLAndroidWindowContext()
    {
    }
    ////////////////////////////////////////////////////////////////////////////////////////////////
    OGLAndroidWindowContext::~OGLAndroidWindowContext()
    {
    }
    ////////////////////////////////////////////////////////////////////////////////////////////////
    bool OGLAndroidWindowContext::initialize( IWindow::OSHandle _windowHandle )
    {
        if( InitializeOpenGLAPI("libGLESv1_CM.so") == false )
        {
            LOG_ERROR("Failed to load OGL API");
            return false;
        }        
        return true;
    }
    ////////////////////////////////////////////////////////////////////////////////////////////////
    void OGLAndroidWindowContext::shutdown()
    {
        ReleaseOpenGLAPI();
    }
    ////////////////////////////////////////////////////////////////////////////////////////////////
    void OGLAndroidWindowContext::swapBuffers()
    {
    }
    ////////////////////////////////////////////////////////////////////////////////////////////////
}   // namespace nane
